<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>methods实现名称计算</title>
    <script type="text/javascript" src="../js/vue.js"></script>
    <script type="text/javascript">
      Vue.config.productionTip = false;
    </script>
  </head>
  <body>
    <div id="root">
      姓：<input type="text" v-model="firstName" />
      <br />
      名：<input type="text" v-model="lastName" />
      <br />
      <!--插值表达式中调用方法，注意这里必须带括号，才能识别到想调用函数-->
      <!--只要值发生变化，模板就会重写解析，然后调用方法，效率不高-->
      全名：<span>{{fullName()}}</span>
      <br />

      <!--methods方法，每个都会调用一次，性能差-->
      全名：<span>{{fullName()}}</span>
      <br />
      全名：<span>{{fullName()}}</span>
      <br />
      全名：<span>{{fullName()}}</span>
      <br />
      全名：<span>{{fullName()}}</span>
      <br />
      全名：<span>{{fullName()}}</span>
      <br />
    </div>
  </body>

  <script type="text/javascript">
    //VM  Vue实例，中转站
    const vm = new Vue({
      el: "#root",
      data: {
        firstName: "张",
        lastName: "三",
      },
      methods:{
        //定义一个函数
        fullName(){
          console.log("被调用了");
          //返回名称，注意需通过this获取VM，再从VM获取名称拼接并返回
          return this.firstName+"-"+this.lastName;
        }
      }
    });
  </script>
</html>
